Hi, friends. My goal is to write every working day. Here we go.
From Benda Ueland's "If you want to write":
Everybody is original, if he tells the truth, if he speaks from himself. But it must be from his true self and not from the self he thinks he should be.
Occasionally, when I'm feeling rebellious, I make grammar errors when writing on purpose. Most often just because I think it conveys what I want to say better than the grammatically correct version.
More so when I write in Lithuanian, which has stricter rules than English.
I participated in a protest today against the inclusion of a party in Lithuania's new coalition government whose leader has previously violated the constitution and is known for anti-Semitic rhetoric.
Around 4,000 people attended, even braving bad weather to make our voices heard. Though it may seem like a small number, a protest like this has a powerful impact.
It shows that we, as citizens, care deeply and won’t remain silent. With extensive news coverage, it sets an important tone for the half of the country watching on TV.
It was also nice to see friends there and have a chance to socialize while standing together.
I walked the Striečiukai trail today just before sunset, covering 4.5 kilometers and passing only one person—and his dog.
Even though forests surround Vilnius, escaping the sounds of civilization isn’t easy. I stopped occasionally to listen, and I could always hear the hum of cars on the nearby main road or a dog barking in the distance.
Here’s something interesting: Google Maps street view covers the entire trail, and in every location, you’ll spot the same man carrying his child in a carrier on his back. A recent dad took a walk and mapped the trail himself. Sweet. What a cool thing to do.
Attended a UX Salon event today at Vinted.
Reminder to self: in presentations, the story is everything.
Pablo Stanley gave a motivational talk on creativity, telling the story of Morgan, a burrito cook on a quest to save the land of Creativia. The rest of his presentation featured about 20 slides of, well, butts (yes, actual behinds) — and it was great!
Jonas Bučinskas shared a captivating story about how Ovoko opened a real scrapyard to dogfood their own product. It reminded me of my own approach, using Dhub to create content on this website.
You can watch the full video on youtube.
Went to a meetup today in Vilnius. Some great guests. Oleksii Rezinov have some brutal advice. Lots of thoughts about autonomous drones. But it seems some of the biggest hurdles in Europe to advance defense tech are slow institutions, lack cooperation between countries, lack of urgency, low of production capacity.
I'm reading If You Want to Write by Barbara Ueland. It was first published in 1938, and my copy was printed in 1984. I got it second-hand, and I've already spilled coffe on it, adding to its vintage character.
Reading it feels like forming a deeply human and personal connection with the author. Here's the author's promise in the introduction:
You will never be working from grim, dry willpower but from generosity and the fascinating search for truth.
Through some reverse engineering—and simply asking my weightlifting coach—I’ve gathered the following information: the system they use to track clients' data and progress over time is built with Next.js, hosted on Vercel, and uses Mantine for the UI.
I was told they "have a coder", so the system is custom-made.
Not only do coaches have access, but all clients have a login that lets them enter data, track both their body weight and the weight they lift. The system also tracks body measurements (handy for online clothes shopping) and allows you to explore various charts.
Apparently, my weightlifting coach follows the Starting Strength program. I only discovered this during my seventh training session.
I’ve been wanting to do Starting Strength for a long time—I even have the book on my Kindle—but I never managed to learn it on my own. Maybe it’s for the best, as weightlifting can be harmful if not done with proper form.
Here's how to create and configure a Next.js project with MDX and Prose UI.
Soon you'll be able to start a Prose UI project from a template and make the process of project creation quicker and more DX-friendly. Stay tuned.
Start by creating a Next.js project, choosing defaults in the prompts.
npx create-next-app@latest
Enter your project’s folder and install the dependencies for rendering MDX and Prose UI. I'm using pnpm, but feel free to use your preferred package manager.
pnpm add @prose-ui/core @prose-ui/next @next/mdx @mdx-js/loader @mdx-js/react @types/mdx
Create an mdx-components.tsx
file in the root of your project, or inside the src
folder. This file will be used to override the default components used by MDX.
import { mdxComponents } from "@prose-ui/next";
import type { MDXComponents } from "mdx/types";
export function useMDXComponents(components: MDXComponents): MDXComponents {
return {
...components,
...mdxComponents,
};
}
Next, go to your src/app/globals.css
and import Prose UI styles at the top of the file:
@import "@prose-ui/next/prose-ui.css";
Configure your project to use mdx with Prose UI by modifying the next.config.ts in the following way:
import createMDX from "@next/mdx";
import { remarkPlugins } from "@prose-ui/core";
/** @type {import('next').NextConfig} */
const nextConfig = {
pageExtensions: ["js", "jsx", "md", "mdx", "ts", "tsx"],
};
const withMDX = createMDX({
options: {
remarkPlugins,
},
});
export default withMDX(nextConfig);
Go to your app/layout.tsx
and replace the content with the code below to ensure that your pages have the correct fonts and styles applied.
<html lang="en" className={`dark ${geistSans.variable} ${geistMono.variable}`}>
<body className="prose-ui antialiased">
<div className="mx-auto max-w-3xl px-8 mb-32">{children}</div>
</body>
</html>
Rename src/app/page.tsx
to src/app/page.mdx
and replace the content with your Markdown/MDX. For example:
# Hello, world!
The Viking landers, part of NASA's [Viking program](https://en.wikipedia.org/wiki/Viking_program), were the first U.S. missions to successfully land on Mars and transmit images and scientific data back to Earth in 1976.
<Frame align="center" caption="Viking lander">
<Image
src="https://nssdc.gsfc.nasa.gov/image/spacecraft/viking_lander.jpg"
alt="Viking lander"
/>
</Frame>
That's it! Run pnpm dev
and open your project in the browser.
I'm approaching the first release of the open-source UI library I've been working on: Prose UI. This website uses Prose UI.
Briefly put, it's a collection of components for building content-centric websites. I'm going to write more about why I'm building it, and how to use it in the coming days.
Meanwhile, here's an image of a blob generated using generative AI by Domas.
What’s the name of the feeling when you look at something—a product, a design, a text—and it has a simple, subtle, and unobtrusive beauty in both form and function? It's as simple as it can be, and not more complex than it needs to be. Is there a word for that?
I spent over an hour today trying to get my Jest tests to work. I tried everything: followed the documentation, asked ChatGPT, but nothing solved the issue. It was frustrating. The setup for jest
, ts-jest
, and tsinfo
felt overcomplicated for something that should have been simple—just running some TypeScript code to check if a function’s response matched what I expected.
In a moment of frustration, I typed this whole rant into ChatGPT. Like a patient therapist, it understood and suggested I try vitest
instead of jest
. And it worked! I was up and running in 3 minutes.
There’s a skill to asking the right questions to get the best answers from AI.
I wonder how to deal with the fact that I don’t have the time or mental capacity to write each day. I’m thinking I could try writing more than one text on a good day, so I can publish something on the a bad day when I’m not able to write.
It’s important to stick to the schedule, even if what I write isn’t great.
Writing is hard, so I don't. But I want to.
I want to write so I can understand the world and myself more clearly.
I want to write because putting thoughts and ideas into words and structure gives me a certain type of joy and a feeling of safety.
I want to write so I can remember my thoughts and ideas better.
I want to write as a form of communication with friends and random people who happen to read what I write (if I'm lucky).
I will write a short text every workday, and this is the first one.