ctnicholasdev Profile Banner
Chris Nicholas Profile
Chris Nicholas

@ctnicholasdev

Followers
4K
Following
5K
Media
714
Statuses
3K

Developer experience @liveblocks • Interactive articles on https://t.co/alFrgXHV7f 🌱

🇬🇧
Joined July 2020
Don't wanna be here? Send us removal request.
@ctnicholasdev
Chris Nicholas
2 years
I've built a new personal website!. →
23
13
281
@ctnicholasdev
Chris Nicholas
5 hours
I'm still working on this, and will share the template soon 👌. There's lots more I'd like to add—multiple files, package installations, document switcher, multiplayer editor, live avatars.
0
0
3
@ctnicholasdev
Chris Nicholas
5 hours
3️⃣ Sandpack by @codesandbox let's you set up a sandbox environment in the browser. I've set up a React environment here, and when the editor updates, it sends the code to Sandpack's preview window.
1
0
4
@ctnicholasdev
Chris Nicholas
5 hours
2️⃣ The editor is Monaco, built and used by @code. Import the React component and you have an advanced editor set up already. There's so much customisation you can add, it's excellent.
1
0
4
@ctnicholasdev
Chris Nicholas
5 hours
Here's how it works!. 1️⃣ The AI is using @liveblocks AI Copilots which provides a ready-made React AI chat for your app. I've added a tool that lets the AI generate React/Tailwind code and then updates the editor when it's done.
1
0
4
@ctnicholasdev
Chris Nicholas
5 hours
I've built my own v0 in just a couple hours!. • Monaco for the editor.• Sandpack for the preview.• Liveblocks for the <AiChat />. A wildly productive @nextjs stack.
4
2
29
@ctnicholasdev
Chris Nicholas
2 days
Book a demo to add AI Copilots to your app.
0
0
1
@ctnicholasdev
Chris Nicholas
2 days
Check out a live demo!.
1
0
1
@ctnicholasdev
Chris Nicholas
2 days
In the video above, I'm using a tool added to @liveblocks pre-built AI React chat. The code looks like this, it lets the AI fill in a number of params, passes it to a search function, and returns the result. The JSON results are saved in the chat, and the AI uses it to respond.
Tweet media one
1
0
1
@ctnicholasdev
Chris Nicholas
2 days
When your AI's permissions are scoped to the user, you don't need to worry about prompt injection leaking other users' data. The AI never has access to more data than it should. And this is where front-end tool calling wins—users are already authenticated.
1
0
0
@ctnicholasdev
Chris Nicholas
2 days
In real AI apps, front-end tool calling is often far more practical than back-end. Let's say a user can search on the front-end. If you pass the same search function to a tool call, it'll have the same authenticated access. It's easier to add to existing apps & already secure.
1
2
4
@ctnicholasdev
Chris Nicholas
3 days
RT @liveblocks: What's new in Liveblocks → June 2025. • Integrate ready-made AI chats into your React app with AI Copilots. • Add contextua….
0
1
0
@ctnicholasdev
Chris Nicholas
7 days
I love Cursor as an editor, but right now, Devin feels like the right choice for an AI Slack helper.
2
0
9
@ctnicholasdev
Chris Nicholas
7 days
Before I started using these tools, I imagined they were pretty similar. In reality, they're quite different—Cursor Background Agents are like the simple chats you use inside Cursor's editor, whereas Devin is much more like a real junior engineer, handling tasks end-to-end.
1
0
5
@ctnicholasdev
Chris Nicholas
7 days
When it comes to speed and cost, it varies depending on the task. With small tasks I've found, they're both around the same speed at creating a PR, though Devin can run additional tests after. For the tasks I tried, Devin was over twice as expensive, but it does a lot more.
1
0
2
@ctnicholasdev
Chris Nicholas
7 days
Devin writes detailed PRs with lots of info, a review checklist for humans, screenshots, very nice. Cursor just links to the Slack thread below the default PR message. If you triggered the AI from a private chat or DM, no one else gets any context—room for improvement here!
Tweet media one
2
0
3
@ctnicholasdev
Chris Nicholas
7 days
Here's the messages each sends in Slack. Devin is fairly verbose, sending messages and confidence scores as it goes. It's good to know, but all the notifications take me out of flow state. I prefer Cursor's fire-and-forget approach, only messaging you on completion.
Tweet media one
1
0
2
@ctnicholasdev
Chris Nicholas
7 days
In terms of coding, I've had more success with Devin completing PRs successfully, as it's ability to run tests and fix problems is very useful. Cursor is not bad at all, and uses Claude 4 by default, but so far it's felt like Devin has the edge thanks to its advanced tooling.
1
0
5
@ctnicholasdev
Chris Nicholas
7 days
Cursor feels like a fresh slate every time, and it doesn't learn more as you go. Additionally, it can't figure out which PR to make changes on without you explicitly telling it `repo=org/repo`. Devin can check multiple repos per task, whereas Cursor is limited to a single repo.
Tweet media one
1
0
4
@ctnicholasdev
Chris Nicholas
7 days
I love how Devin also suggests when to add info to its knowledge. For example, I told it where our documentation files live, and it automatically wrote this down, and suggested I save it. Next time I asked it, it knew how to edit our docs.
Tweet media one
1
0
6
@ctnicholasdev
Chris Nicholas
7 days
Devin lets you submit data to its knowledge base, super handy for teaching it how to complete tasks next time. For example, you can tell it which repo your documentation is stored in, and how to use it.
Tweet media one
1
0
4