Developer and aspiring entrepreneur. I've worked on several open source projects, as well as developing for the Chrome Web Store and Android Market. My current interests are in Clojure, ClojureScript, and IndexedDB.
Email me: matthew at matthewphillips.info
Submissions
I Built a Scheme Compiler with AI in 4 Days
matthewphillips.info
43 points·by MatthewPhillips··33 comments
Astro DB
astro.build
168 points·by MatthewPhillips··41 comments
[untitled]
1 points·by MatthewPhillips··0 comments
I built my blog with Astro
aseemtaneja.com
3 points·by MatthewPhillips··1 comments
Lucy – A DSL that compiles to XState
matthewphillips.info
9 points·by MatthewPhillips··1 comments
Using State Machines in Alexa Skills
matthewphillips.info
4 points·by MatthewPhillips··0 comments
The IoT Project Development Process
phillipsoft.com
1 points·by MatthewPhillips··0 comments
Using Golang (Or Any Language) in Alexa Skills
phillipsoft.com
2 points·by MatthewPhillips··0 comments
Tips for Building Voice User Interfaces
phillipsoft.com
29 points·by MatthewPhillips··10 comments
Building a Hello World Alexa Skill
phillipsoft.com
2 points·by MatthewPhillips··0 comments
Robot, a 1kB library for finite state machines
matthewphillips.info
2 points·by MatthewPhillips··0 comments
Faster Load Times for Any Framework
bitovi.com
6 points·by MatthewPhillips··0 comments
Writing on your Gatsby blog leads to JavaScript bloat
matthewphillips.info
1 points·by MatthewPhillips··1 comments
DoneJS 3
bitovi.com
11 points·by MatthewPhillips··0 comments
StealJS 2.0 Released
bitovi.com
7 points·by MatthewPhillips··0 comments
Creating Web Components in Go and Wasm
matthewphillips.info
1 points·by MatthewPhillips··0 comments
Improved Error Handling in DoneJS
bitovi.com
5 points·by MatthewPhillips··0 comments
Building Multi-Use Web Workers
matthewphillips.info
2 points·by MatthewPhillips··0 comments
DoneJS 2.0 Released
bitovi.com
4 points·by MatthewPhillips··0 comments
Why you should Never EVER EVER copy paste and execute someone else's code
We unfortunately released Astro 6 only a few weeks before Vite 8 / Rolldown came out, which is why we did Astro 7 so soon. But there are very few breaking changes compared to Astro 6. That being said, some of these performance improvements (the Sätteri processor) are available in Astro 6 too.
Ok sure, the "never" was a bit strong here. Running CLIs on phones is not a normal thing and not as simple as it is on desktop. Apple prohibits apps from downloading and executing code, so some sort of new Apple-approved thing would be required here. That's a very heavy lift.
Of course anything is possible, I just don't think that people advocating for MCP's death have really thought through these problems, and are mostly focused on the desktop productivity use-cases.
Ok, I can see there's a new (to me) Customize section where you can install skills. You have been able to connect MCP servers for quite a while.
The UX here isn't great, but let's assume it can be improved. How would auth work with this alternative method? I want to connect to Puma store and that's done using a skill with a CLI. Can the CLI launch your web browser to do oauth from the skill (on a phone)? And then the credentials are saved where?
Not challenging you, I'm open to alternatives to MCP for sure. But MCP seems way more mature especially for non-programming use-cases.
Please keep in mind that CLIs do not run on mobile and never will. This is the elephant in the room that nearly everypne seems to be ignoring. This "debate" is built around the assumption that AI is only for at-your-desk work. It's obviously not. Having the ability to mix/match the services you use for everything in your life, whether that's email or social networks or managing your book collection, is going to be a normal thing everyone does in the future. It's just not today, because AI companies are almost exclusively focused on the programming use-case (and related desk job stuff).
Every new generation thinks things were better when they were young. Personally I liked the internet of the mid to late 90s, just as the web was overtaking AOL. By the mid 2010s, which this article calls the golden age, the internet was already very commercial; personal sites barely existed, most activity took place in walled social media gardens.
I bet people older than me disliked the 90s web and preferred the days of gopher and newsgroups. No one is wrong and everyone is wrong.
Part of the reason things felt better when you were young is because it was; for you. Fewer responsibilities. Less understanding of the nuances and intricacies of the world. More room for idealism. Another part of the reason is that time tends to fade away the bad parts of life while retaining the things you enjoyed. This is good.
Nostalgia is great for reconnecting yourself to a simpler time in your life. Nothing wrong with that. But when you start making comparisons you're only fooling yourself.
Yeah, I didn't take it that way, just thought it was worth clarifying that this isn't a case of AI hitting a wall or anything like that, I just went down other rabbit holes.
The reason it's only 73% is because I prioritized fun stuff like self hosting and platform binaries. I think finishing off the standards would only take a few more hours (except eval which I don't plan to do).
I have a preview release ready, if you scroll down you'll see the instructions. If you're able to try it out and leave a comment on whether it fixes your issue it'd be a big help.
Hey, I'm the author of this doc. The reason for the pattern is to make it so you always can find why a mutation occured. So combining state variables and dom changes is ok as long as that's the only place that does the mutation. If not, now you've made it harder to debug. I keep the strict separation so that I can always stick a debugger and see a stack trace of what happened.
Writing a language, even a DSL is a lot of work. It's not enough to just make a good language, there's also a whole world of tooling support that people expect nowadays.
Also ultimately it was hard to sell the idea of living in a different file format from the rest of your code. This is always a tough sell for DSLs. Even languages as good as CSS and SQL struggle with this for a lot of devs.
First, we have just launched and are still figuring out pricing, this is a great point of feedback that we'll consider, thank you.
What differentiates Astro DB is the deep integration with the Astro framework and providing an easy path for common scenarios. Astro DB is a higher-level product than using a database service directly. For example, Astro DB handles migrations transparently for you and guides you when manual intervention is needed, just from running `astro db push`.
Astro DB also includes a local story, by default you use a local SQLite database that you can seed (using db/seed.ts) for local development. You can even use it for a purely static site, although we're still working on making SSG use-cases more seamless. For now though, this gives you a great local workflow for development that you can think easily connect to production with `astro build --remote`.
This is a very good question! One of the big reasons we partnered with Turso was for their edge network, so replicas are available close to your origin server. Being able to host anywhere is something that's important to Astro, so this felt like the right balance. Turso is known for its speed and one of the main thing that attracts people to use it.
Email me: matthew at matthewphillips.info