twostraws,
@twostraws@mastodon.social avatar

In November, I released Inferno: an open-source collection of Metal shaders for SwiftUI developers, making it easy to create gorgeous special effects in your iOS apps. https://github.com/twostraws/Inferno

twostraws,
@twostraws@mastodon.social avatar

Two months later, I released Vortex: a high-performance particle effect system for SwiftUI, so you can bring effects such as confetti, fireworks, fire, and more into your apps. https://github.com/twostraws/Vortex

twostraws,
@twostraws@mastodon.social avatar

Today, another two months later, I just released my third and final open-source project, at least for now. It's called Ignite, and it's a Swift static website generator. Your entire site is written as Swift code, then compiled to HTML, JavaScript, and CSS. https://github.com/twostraws/Ignite

StewartLynch,
@StewartLynch@iosdev.space avatar

@twostraws It would be really great if you (or someone else) could create a quick video or blog post (step by step) showing how one can create a simple site. I cloned both the Starter and Samples and Neither compile so I am stuck figuring out how to start. Brain fog😶‍🌫️😶‍🌫️

cgaaf,
@cgaaf@iosdev.space avatar

@StewartLynch @twostraws same for me. Maybe my first request will be to improve the starter site.

ramzesenok,
@ramzesenok@mastodon.social avatar

@StewartLynch @twostraws I commented out the code that was preventing compilation and it was a nice starting point

StewartLynch,
@StewartLynch@iosdev.space avatar

@ramzesenok @twostraws I have it sorted now too. I just imported from the samples into the starter kit. There was also an error in the Samples repo where it was pointing to an incorrect commit from the main repo.

tapforms,
@tapforms@mastodon.social avatar

@twostraws When I add the package in Xcode, I get the error Failed to resolve package dependencies. This is a brand new Xcode project.

titociuro,
@titociuro@mstdn.social avatar

@tapforms @twostraws Is this with Xcode 15.3? I had similar issues and went back to 15.2. Happier now.

tapforms,
@tapforms@mastodon.social avatar

@titociuro @twostraws Yes 15.3. The package that shows in the project navigator also has nothing in it when I allow Xcode to add it anyway.

titociuro,
@titociuro@mstdn.social avatar

@tapforms @twostraws Yup. Seen it. My SPM issues have been reduced dramatically (actually, not an issue anymore) with 15.2.

tapforms,
@tapforms@mastodon.social avatar

@titociuro @twostraws but I wonder if maybe the package file needs something setup differently for Xcode 15.3?

titociuro,
@titociuro@mstdn.social avatar

@tapforms @twostraws Perhaps? But here’s the thing… I have seen issues with Vapor and other packages as well. Even the packages disappear from what a few seconds earlier was all fine. And then a barrage of errors. My limited interaction proved frustrating with 15.3 so I went back. I wasted way too much time chasing I-don’t-know-what. And the message wasn’t helpful at all, so I bailed.

tapforms,
@tapforms@mastodon.social avatar

@titociuro @twostraws Interesting. I have many other SPM packages in my Xcode 15.3 project without any issues. Something with this package won't work though. I don't really want to go back to Xcode 15.2 though. Hopefully Paul can think of a solution for this package. I'd like to write a database export function using Ignite to build a website from a database.

twostraws,
@twostraws@mastodon.social avatar

Why is Ignite different from other Swift website frameworks?

  • Your sites automatically adapt to mobile, iPad, and desktop.
  • You get modern web components in Swift – accordions, carousels, dropdowns, and more just work.
  • Accessibility is baked into your HTML out of the box.
twostraws,
@twostraws@mastodon.social avatar

You can build a whole website using Swift if you want, or bring in Markdown and have those files become pages – it builds on Apple's fantastic swift-markdown library for lightning fast Markdown parsing. Just like Jekyll in Ruby, you can select layouts right in your Markdown.

twostraws,
@twostraws@mastodon.social avatar

It has a delightful, SwiftUI-like API, and where possible I've used similar names for elements and modifiers – get started by cloning the starter template. But it's built for the web: not replacing CSS/JavaScript, but building on top of them so you get great results fast.

twostraws,
@twostraws@mastodon.social avatar

I've gone out of my way to document all the code as best as I can, and there's a new sample website that demonstrates a wide variety of controls alongside the code it takes to produce each piece of output: https://ignitesamples.hackingwithswift.com

twostraws,
@twostraws@mastodon.social avatar

Ignite is open source and available today – I'm grateful to the folks at @tryswiftconf for giving me the chance to announce it. There are so many small ways anyone can get involved, and I would really love to see folks helping no matter how small the contribution.

twostraws,
@twostraws@mastodon.social avatar

In particular:

  • Write a small code sample demonstrating using one element.
  • Write just one test, proving that a given Ignite element configuration produces the correct HTML output.
  • Submit fixes for typos, unclear comments, and more.

It's all welcome! 🙌

twostraws,
@twostraws@mastodon.social avatar

If you're not sure about making a pull request, I'm happy to help! And once you've managed it once, I promise the next once is easier. There are lots of opportunities to get involved, so please do ✨

fbartho,
@fbartho@mastodon.social avatar

@twostraws I'm super interested in this project! Burnt out on package.json and friends after 10 years of it.

If we have questions about the project, how would you recommend one asks? Is Mastodon the right place, or a github issue? Somewhere else?

fbartho,
@fbartho@mastodon.social avatar

@twostraws I've filed a few feature requests! Happy to contribute implementations if you agree with them!

twostraws,
@twostraws@mastodon.social avatar

@fbartho An environment() modifier would be epic and most appreciated – I'd love to see this implemented, and would really appreciate a PR from you for it! Gosh, if we could nail that, then we could perhaps use property wrappers to access things like site/content data, rather than relying on the publishing context being passed around.

fbartho,
@fbartho@mastodon.social avatar

@twostraws I’ll take a look at environment() — probably on Monday or Tuesday! (Though I could be fooling myself in thinking I’ll be able to avoid trying it tomorrow)

hopeforall,
@hopeforall@mastodon.social avatar

@twostraws Looks awesome. I love the pics of your dogs. They're adorable. I would love to help out. I don't think my skillset is high enough yet to be very beneficial, but I do know testing is important. All I can do is try.

fodwyer,
@fodwyer@mastodon.social avatar

@twostraws lovely idea, nicely done!

(Noticed one small bug tho on the linked example, the “Buttons” link is broken)

designatednerd,
@designatednerd@mastodon.social avatar

@twostraws seeing a couple css issues at the top on mobile if you don’t already have them in your backlog

mamouneyya,
@mamouneyya@mastodon.social avatar

@twostraws Can you talk about SEO? (I have zero knowledge about it, and I usually use plugins for my WP sites, but I'm intrigued by this)

P.S. I saw the robots file config, but I'm curious if there are more advanced considerations.

ravigupta,
@ravigupta@mastodon.social avatar

@twostraws ❤️🙏

tapforms,
@tapforms@mastodon.social avatar

@twostraws this looks really cool. I'll dig into it later. Sleep time. But can it be used to generate static sites dynamically? I mean with loops and access to data from my own app and have it generate the static html pages from that?

twostraws,
@twostraws@mastodon.social avatar

@tapforms It's Swift code that runs on your Mac when you build the site. It already has support for loops and conditions to generate HTML based on various conditions of your choosing, but you can of course extend that further.

pixelpartner,
@pixelpartner@mastodon.gamedev.place avatar
twostraws,
@twostraws@mastodon.social avatar

@pixelpartner Oh snap! Yes, I see now that’s still on my todo list 🙃 That would be a welcome PR 🙂

Colinnapier,
@Colinnapier@mastodon.social avatar

@twostraws This is hilariously typical. I just moved my WordPress site to Hugo last week and then this arrives! Guess what I will be doing over Easter?

_danielkramer,
@_danielkramer@mastodon.social avatar

@twostraws this is amazing! Congrats! Can’t wait to try

brennansv,
@brennansv@sfba.social avatar

@twostraws This looks great for generating a personal website. A great addition would be WebFinger to connect to social media accounts. https://webfinger.net

rgordon,
@rgordon@mastodon.social avatar

@twostraws Thank-you Paul! Will have to check this out. After I cry a little bit having spent the last four days fine-tuning the CSS for a website publishing workflow I’d built using another static site generator. 😂

StewartLynch,
@StewartLynch@iosdev.space avatar

@twostraws I am oh so tempted to rewrite my entire site now. This is fantastic

xmollv,
@xmollv@mastodon.social avatar

@twostraws This is really exciting. Definitely gonna play with it, I've always toyed with things like Jekyll but never enjoyed needing to deal with Ruby!

HootenHaller,
@HootenHaller@mastodon.social avatar

@twostraws
I’m feeling pretty dumb here. How do I build and run the sample? I don't see an Xcode project or workspace, and I've never ever built Swift from the command line.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • GTA5RPClips
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • tacticalgear
  • cubers
  • Youngstown
  • mdbf
  • slotface
  • rosin
  • osvaldo12
  • ngwrru68w68
  • kavyap
  • InstantRegret
  • JUstTest
  • everett
  • Durango
  • cisconetworking
  • khanakhh
  • ethstaker
  • tester
  • anitta
  • Leos
  • normalnudes
  • modclub
  • megavids
  • provamag3
  • lostlight
  • All magazines